if (source_device &&
gdk_device_get_source (source_device) != GDK_SOURCE_KEYBOARD &&
event->type != GDK_ENTER_NOTIFY && event->type != GDK_LEAVE_NOTIFY)
- cancel_event_sequence_on_hierarchy (widget,
- gtk_get_event_widget (event),
+ cancel_event_sequence_on_hierarchy (NULL, widget,
gdk_event_get_event_sequence (event));
}
{
gboolean return_val = FALSE;
GtkCapturedEventHandler handler;
+ GtkWidget *parent;
g_return_val_if_fail (GTK_IS_WIDGET (widget), TRUE);
g_return_val_if_fail (WIDGET_REALIZED_FOR_EVENT (widget, event), TRUE);
+ parent = gtk_widget_get_parent (widget);
+
if (event->type == GDK_EXPOSE)
{
g_warning ("Events of type GDK_EXPOSE cannot be synthesized. To get "
/* We stop event propagation, but still we must ensure the sequence is
* cancelled across the widget hierarchy.
*/
- event_check_cancel_sequence_on_hierarchy (widget, event);
+ event_check_cancel_sequence_on_hierarchy (parent, event);
return_val = TRUE;
}
GdkEvent *event)
{
gboolean return_val = FALSE, handled;
+ GtkWidget *parent;
/* We check only once for is-still-visible; if someone
* hides the window in on of the signals on the widget,
return TRUE;
g_object_ref (widget);
+ parent = gtk_widget_get_parent (widget);
if (widget == gtk_get_event_widget (event))
return_val |= _gtk_widget_run_controllers (widget, event, GTK_PHASE_TARGET);
/* We stop event propagation, but still we must ensure the sequence is
* cancelled across the widget hierarchy.
*/
- event_check_cancel_sequence_on_hierarchy (widget, event);
+ event_check_cancel_sequence_on_hierarchy (parent, event);
return_val = TRUE;
}